package cn.xeblog.plugin.game.ngsnake.model;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

/**
 * 游戏模式
 *
 * @author anlingyi
 * @date 2022/8/5 7:34 PM
 */
@Getter
@AllArgsConstructor
public enum GameMode {
    /**
     * 不贪吃模式（吃了“食物”蛇身会变短，并且胜利条件就是“把蛇变没”）
     */
    NON_GLUTTONOUS("不贪吃模式"),
    /**
     * 贪吃模式（吃了食物蛇身就会变长）
     */
    GLUTTONOUS("贪吃模式");

    /**
     * 游戏模式名称
     */
    private String name;

    /**
     * 通过名称值配置
     *
     * @param name 待匹配的名称
     * @return 游戏模式选项
     */
    public static GameMode getMode(String name) {
        return Arrays.stream(values()).filter(model -> model.name.equals(name)).findFirst().orElse(GameMode.NON_GLUTTONOUS);

    }
}
